Шаг 638 - CObject::GetRuntimeClass.

Автор Каев А. Г.
virtual CRuntimeClass* GetRuntimeClass( ) const;

Возвращаемое значение
Указатель на структуру CRUNTIMECLASS, соответствующую классу этого объекта, никогда не NULL.

Замечания
Имеется одна структура CRUNTIMECLASS для каждого класса унаследованного от CObject. Элементы структуры следующие:

LPCSTR m_lpszClassName 			Строка с нулевым символом в конце, содержащая имя класса ASCII.
Int m_nObjectSize 				Размер объекта, в байтах. Если объект имеет элементы данных,которые указывают
			 		на распределенную память, размер той памяти не включен. 
UINT m_wSchema 				Номер схемы (- 1 для классов не умеющих преобразовываться в последовательную форму). 
					См. макрокоманду IMPLEMENT_SERIAL для описания номера схемы.
CObject * (PASCAL* m_pfnCreateObject) ()	Указатель функции к заданному по умолчанию конструктору, который создает объект 
					вашего класса (допустимый только если класс поддерживает динамическое создание, 
					иначе возвращает NULL). 
CRUNTIMECLASS* (PASCAL* m_pfn_GetBaseClass) ()  Если ваше приложение динамически связано с AFXDLL версией MFC, указатель на функцию 
					которая возвращает структуру CRUNTIMECLASS базового класса. 
CRUNTIMECLASS* m_pBaseClass 		Если ваше приложение статически связано с MFC, указатель на структуру CRUNTIMECLASS базового класса.

Эта функция требует использования макрокоманды IMPLEMENT_DYNAMIC или IMPLEMENT_SERIAL в реализации класса. Вы получите неправильные результаты иначе.

Пример

// См. CObList::CObList для просмотра класса CAge, используемого в CObject примерах. 
// пример для CObject::GetRuntimeClass
CAge a(21);
CRuntimeClass* prt = a.GetRuntimeClass();
ASSERT( strcmp( prt->m_lpszClassName, "CAge" )  == 0 );

Hosted by uCoz